package model;

import java.util.HashMap;
import model.vos.ErrorUserException;

/**
* Clase que gestiona la seguridad para el ingreso de los usuarios al sistema
* 
* @author Manuel
*/
public class SecurityUsers{
	//Lista que contiene los usuarios validos
	private static HashMap<String, String> userList	= new HashMap<String, String>();
	static{
		userList.put("manuel", "manuel");
		userList.put("hugo", "hugo");
		userList.put("zuri", "zuri");
		userList.put("jose", "jose");
		userList.put("anzures", "anzures");
	}
	//Lista que contiene los privilegios de los usuarios validos
	private static HashMap<String, String> userType	= new HashMap<String, String>();
	static{
		userType.put("manuel", "admin");
		userType.put("hugo", "admin");
		userType.put("zuri", "sale");
		userType.put("jose", "sale");
		userType.put("anzures", "sale");
	}
	/**
	 * Metodo que valida si una cuenta de usuario es correcta
	 * @return true si el usuario es valido, false en caso contrario
	 */
	public static String type(String userName){
		return userType.get(userName);
	}
	/**
	 * Metodo que valida si una cuenta de usuario es correcta
	 * @return true si el usuario es valido, false en caso contrario
	 */	
	public static boolean isValidUser(String userName, String password)throws ErrorUserException{
		boolean isValidUser	= false;		
		String pwd		= "";
		
		//Se valida si en el HashMap con la lista de usuarios existe en valor para el nombre de usuario
		if ( userList.containsValue(userName)){
			pwd	= userList.get(userName);
			//Validamos el password
			if( pwd.compareTo(password) == 0 ){
				//El password es valido
				isValidUser	= true;				
			}
		}else{
			throw new ErrorUserException();
		}		
		if( !isValidUser ){
			//Si el usuario no es correcto lanzamos la exception
			throw new ErrorUserException();
		}
		return isValidUser;
	}
	
}
